package com.irssproject.app.web.action.lectorRSS;

import java.text.SimpleDateFormat;
import java.util.Locale;
import java.util.Map;
import java.util.logging.Logger;

import com.irssproject.app.bean.lectorRSS.Feed;
import com.irssproject.app.bean.lectorRSS.Item;
import com.irssproject.app.bean.lectorRSS.Lectura;
import com.irssproject.app.bean.lectorRSS.Subscripcio;
import com.irssproject.app.bean.main.Usuari;
import com.irssproject.app.service.lectorRSS.iface.SubscripcioService;
import com.irssproject.app.utils.Constants;
import com.irssproject.app.web.action.JSONWrappers.ItemJSONWrapper;
import com.irssproject.app.web.action.JSONWrappers.LecturaJSONWrapper;
import com.irssproject.app.web.action.JSONWrappers.SubscripcioJSONWrapper;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;


@SuppressWarnings("serial")
public class MostrarLecturaAction extends ActionSupport  {
	
	
	private Long idLectura;


	private String cont;
	
	boolean llegit;
	

	private Item item;
	private LecturaJSONWrapper lectura;

	private String listItems;
	Map<String,Object> session;

	private String etiqueta;
	private String fraseLectura;

	SubscripcioService subscripcioService;
	
	Logger logger = Logger.getLogger(MostrarLecturaAction.class.getName());
	public MostrarLecturaAction(SubscripcioService subscripcioService) {
		this.subscripcioService = subscripcioService;
	}
	
	public boolean isLlegit() {
		return llegit;
	}


	public void setLlegit(boolean llegit) {
		this.llegit = llegit;
	}

	
	public Long getIdLectura() {
		return idLectura;
	}

	public void setIdLectura(Long idLectura) {
		this.idLectura = idLectura;
	}
	

	public Item getItem() {
		return item;
	}

	public void setItem(Item item) {
		this.item = item;
	}
	
	public String getCont() {
		return cont;
	}

	public void setCont(String cont) {
		this.cont = cont;
	}
	
	public void setListItems(String listItems) {
		this.listItems = listItems;
	}

	public String getListItems() {
		return listItems;
	}
	

	public void setLectura(LecturaJSONWrapper lectura) {
		this.lectura = lectura;
	}


	public LecturaJSONWrapper getLectura() {
		return lectura;
	}
	public void setEtiqueta(String etiqueta) {
		this.etiqueta = etiqueta;
	}

	public String getEtiqueta() {
		return etiqueta;
	}
	
	public void setFraseLectura(String fraseLectura) {
		this.fraseLectura = fraseLectura;
	}

	public String getFraseLectura() {
		return fraseLectura;
	}
	
	public String mostrarLectura(){
		
		try{
		      session = ActionContext.getContext().getSession();
			
//			Map<String,Object> session = ActionContext.getContext().getSession();
//			Usuari usuari = ((Usuari)session.get(Constants.SESSIO_USUARI_AUTENTICAT));
//			
			
			//Marquem l'item com a llegit i retornem la llista d'objectes Item
			subscripcioService.marcarLecturaLlegida(idLectura);
			
			Lectura lecturaAux = subscripcioService.getLecturaById(idLectura);			
			//Posem a no la variable de sessio que guarda el vot
			session.put(Constants.MAGRADA, lecturaAux.isValorada());

			ItemJSONWrapper item = new ItemJSONWrapper();
			
			SubscripcioJSONWrapper subscripcio = new SubscripcioJSONWrapper();

			lectura = new LecturaJSONWrapper();
			
			item.setTitol(lecturaAux.getItem().getTitol());
			item.setLink(lecturaAux.getItem().getLink());
			item.setDataPublicacioDisplay(lecturaAux.getItem().getDataPublicacioString());
			item.setContingut(lecturaAux.getItem().getContingut());
			lectura.setItem(item);
			lectura.setLlegida(lecturaAux.isLlegida());
			lectura.setValorada(lecturaAux.isValorada());
			
			subscripcio.setNumItemsNoLlegits(lecturaAux.getSubscripcio().getNumItemsNoLlegits());
			lectura.setSubscripcio(subscripcio);
			lectura.setId(lecturaAux.getId());
					
		}catch (Exception e) {
			e.printStackTrace();
		}

		return SUCCESS;
	}

	public String marcarLlegidaONoLlegida(){
		
		session = ActionContext.getContext().getSession();

		boolean isLlegida = subscripcioService.marcarLlegidaONoLlegida(idLectura);
		
		setLlegit(isLlegida);
		
		return SUCCESS;
	}
	
	public String etiquetarFraseLectura()
	{
		logger.info("Afegim l'etiqueta "+getEtiqueta()+" a la frase "+getFraseLectura());
		return SUCCESS;
	}


}
